package lv.servidordisqueria.server.accion;

import lv.mensajeriadisqueria.idomain.ITema;
import lv.mensajeriadisqueria.mensaje.Mensaje;

public class TemaAccion {

	public static Mensaje actuar(Mensaje mensaje) {
		Mensaje respuesta = new Mensaje();
		ITema tema = (ITema)mensaje.getObjeto();
		if (Mensaje.ALTA.equalsIgnoreCase(mensaje.getMensaje())) {
			insertar(respuesta, tema);
		} else if (Mensaje.BAJA.equalsIgnoreCase(mensaje.getMensaje())) {
			borrar(respuesta, tema);
		} else if (Mensaje.MODIFICAR.equalsIgnoreCase(mensaje.getMensaje())) {
			modificar(respuesta, tema);
		} 
		return respuesta;
	}

	private static void modificar(Mensaje respuesta, ITema tema) {
		try {
			respuesta.setMensaje(Mensaje.MODIFICADO);
		} catch (RuntimeException e) {
			respuesta.setMensaje(Mensaje.EXCEPTION);
			respuesta.setObjeto(e);
		}
	}

	private static void borrar(Mensaje respuesta, ITema tema) {
		try {
			respuesta.setMensaje(Mensaje.BORRADO);
		} catch (RuntimeException e) {
			respuesta.setMensaje(Mensaje.EXCEPTION);
			respuesta.setObjeto(e);
		}
	}

	private static void insertar(Mensaje respuesta, ITema tema) {
		try {
			respuesta.setMensaje(Mensaje.INSERTADO);
//			respuesta.setObjeto();
		} catch (RuntimeException e) {
			respuesta.setMensaje(Mensaje.EXCEPTION);
			respuesta.setObjeto(e);
		}
	}
}